Silo: Exploiting JavaScript and DOM Storage for Faster Page Loads
نویسنده
چکیده
A modern web page contains many objects, and fetching these objects requires many network round trips— establishing each HTTP connection requires a TCP handshake, and each HTTP request/response pair requires at least one round trip. To decrease a page’s load time, designers try to minimize the number of HTTP requests needed to fetch the constituent objects. A common strategy is to inline the page’s JavaScript and CSS files instead of using external links (and thus separate HTTP fetches). Unfortunately, browsers only cache externally named objects, so inlining trades fewer HTTP requests now for greater bandwidth consumption later if a user revisits a page and must refetch uncacheable files. Our new system, called Silo, leverages JavaScript and DOM storage to reduce both the number of HTTP requests and the bandwidth required to construct a page. DOM storage allows a web page to maintain a key-value database on a client machine. A Silo-enabled page uses this local storage as an LBFS-style chunkstore. When a browser requests a Silo-enabled page, the server returns a small JavaScript shim which sends the ids of locally available chunks to the server. The server responds with a list of the chunks in the inlined page, and the raw data for chunks missing on the client. Like standard inlining, Silo reduces the number of HTTP requests; however, it facilitates finer-grained caching, since each chunk corresponds to a small piece of JavaScript or CSS. The clientside portion of Silo is written in standard JavaScript, so it runs on unmodified browsers and does not require users to install special plug-ins.
منابع مشابه
Prophecy: Accelerating Mobile Page Loads Using Final-state Write Logs
Web browsing on mobile devices is expensive in terms of battery drainage and bandwidth consumption. Mobile pages also frequently suffer from long load times due to high-latency cellular connections. In this paper, we introduce Prophecy, a new acceleration technology for mobile pages. Prophecy simultaneously reduces energy costs, bandwidth consumption, and page load times. In Prophecy, web serve...
متن کاملPolaris: Faster Page Loads Using Fine-grained Dependency Tracking
To load a web page, a browser must fetch and evaluate objects like HTML files and JavaScript source code. Evaluating an object can result in additional objects being fetched and evaluated. Thus, loading a web page requires a browser to resolve a dependency graph; this partial ordering constrains the sequence in which a browser can process individual objects. Unfortunately, many edges in a page’...
متن کاملReducing Loading Time of Smart TV‟s web Application
Smart TVs use Webkit as a web browser engine to provide contents. Webkit exploits web standard resources, such as HTML, CSS, JavaScript, and images, to run applications. When an application is started, Webkit loads resources to the memory and creates DOM(Document Object Model) tree and render tree; this process takes a long time. Generally, the web browsers on PCs or mobile devices sometimes ch...
متن کاملJSgraph: Enabling Reconstruction of Web Attacks via Efficient Tracking of Live In-Browser JavaScript Executions
In this paper, we propose JSgraph, a forensic engine that is able to efficiently record fine-grained details pertaining to the execution of JavaScript (JS) programs within the browser, with particular focus on JS-driven DOM modifications. JSgraph’s main goal is to enable a detailed, post-mortem reconstruction of ephemeral JS-based web attacks experienced by real network users. In particular, we...
متن کاملA Framework for Parallelizing Large-Scale, DOM-Interacting Web Experiments
Concurrently executing arbitrary JavaScript on many webpages is hard. For free-standing JavaScript — JavaScript that does not interact with a DOM — parallelization is easy. Many of the parallelization approaches that have been applied to other mainstream languages have been applied also to JavaScript. Existing testing frameworks such as Selenium Grid [19] and PhantomJS [16] allow developers to ...
متن کامل